module default_encode_3b_to_4b(out_5b_to_6b,in_3b_to_4b,out_3b_to_4b);
/*	
2. 3b到4b默认编码 有三种情况
	1:一的数量和零的数量相等,此时标志位为0	
	2:一的数量是3个,零的数量是1个 ,此时标志位为1
			其中 3b为111时,其编码取决于 6b 的结果
	*/
input [2:0] in_3b_to_4b;
input [6:0] out_5b_to_6b;
output [4:0] out_3b_to_4b;	
wire [6:0] out_5b_to_6b;			
wire [2:0] in_3b_to_4b;
reg [4:0] out_3b_to_4b;	
		

always @ (in_3b_to_4b)begin
	case (in_3b_to_4b)
		3'b000: out_3b_to_4b <= 5'b11011;
		3'b001: out_3b_to_4b <= 5'b01001;
		3'b010: out_3b_to_4b <= 5'b00101;
		3'b011: out_3b_to_4b <= 5'b01100;
		3'b100: out_3b_to_4b <= 5'b11101;
		3'b101: out_3b_to_4b <= 5'b01010;
		3'b110: out_3b_to_4b <= 5'b00110;
		3'b111: begin 
						if(!out_5b_to_6b[6] && (out_5b_to_6b[0]==out_5b_to_6b[1]))
							out_3b_to_4b <= 5'b10111;
						else
							out_3b_to_4b <= 5'b11110;
					end
	endcase
end
endmodule
